#include "avz.h"

using namespace AvZ;

void Script()
{
    SetZombies({
        ZOMBIE,
        POLE_VAULTING_ZOMBIE,
        FOOTBALL_ZOMBIE,
        DANCING_ZOMBIE,
        ZOMBONI,
        JACK_IN_THE_BOX_ZOMBIE,
        DIGGER_ZOMBIE,
        POGO_ZOMBIE,
        BUNGEE_ZOMBIE,
        LADDER_ZOMBIE,
        CATAPULT_ZOMBIE,
        GARGANTUAR,
        GIGA_GARGANTUAR,
        DOLPHIN_RIDER_ZOMBIE,
        SNORKEL_ZOMBIE,
    });

    SelectCards({
        CHERRY_BOMB,
    });

    SetTime(-599, 1);
    pao_operator.resetPaoList({
        {1, 1},
        {2, 1},
        {3, 1},
        {4, 1},
        {5, 1},
        {6, 1},
        {1, 3},
        {2, 3},
        {3, 3},
        {4, 3},
        {1, 5},
        {2, 5},
        {3, 5},
        {4, 5},
        {3, 7},
        {4, 7},
        {5, 6},
        {6, 6},
    });

    for (auto wave : {1, 2, 3, 4, 5, 6, 7, 8, 11, 12, 13, 14, 15, 16, 17, 18}) {
        SetTime(-95, wave);
        pao_operator.pao({{2, 9}, {5, 9}});
        Delay(107);
        pao_operator.pao(1, 8.0875);
    }

    for (auto wave : {9, 19}) {
        SetTime(-95, wave);
        pao_operator.pao({{2, 9}, {5, 9}});
        Delay(107);
        pao_operator.pao(1, 8.0875);
        SetTime(601 - 95);
        pao_operator.pao({{2, 8}, {5, 8}});
        Delay(107);
        pao_operator.pao(1, 7.6375);
        SetTime(601 + 601 - 95);
        pao_operator.pao({{2, 8}, {5, 8}});
        SetTime(601 + 601 + 601 - 95);
        pao_operator.pao({{2, 8}, {5, 8}});
    }

    SetTime(-55, 10);
    pao_operator.pao({{2, 9}, {5, 9}});
    Delay(107);
    pao_operator.pao(1, 8.0875);
    SetTime(178);
    Card(CHERRY_BOMB, 2, 9);

    SetTime(-150, 20);
    pao_operator.pao(4, 7.5875);
    SetTime(-55);
    pao_operator.pao({{2, 9}, {5, 9}});
    Delay(107);
    pao_operator.pao(1, 8.0875);
    SetTime(601 - 95);
    pao_operator.pao({{2, 8}, {5, 8}});
    Delay(107);
    pao_operator.pao(1, 7.6375);
    SetTime(601 + 601 - 95);
    pao_operator.pao({{2, 8}, {5, 8}});
    SetTime(601 + 601 + 601 - 95);
    pao_operator.pao({{2, 8}, {5, 8}});
}